#def将一段代码封装为函数  convert_currency函数名称  im 输入的金额 er汇率
def convert_currency(im, er):
    """
        汇率兑换函数
    """
    out = im * er
    #return语句就是把执行结果返回到调用的地方，并把程序的控制权一起返回
    return out

# 汇率
USD_VS_RMB = 6.77

# 带单位的货币输入 判断是否异常的循环
while True:
    try:
        currency_str_value = input('请输入带单位的货币金额：')
        unit = currency_str_value[-3:]  #提取单位

        if unit not in ['USD', 'CNY']:  #判断是不是USD和CNY这两种货币
            raise ValueError('不支持该种货币！')#raise 捕获的异常

        break#终止循环

    except (ValueError, IndexError):
        print('请输入正确的带单位的货币金额！')

if unit == 'CNY':   #如果单位是人民币，那么：汇率=1/人民币对美元汇率
    exchange_rate = 1 / USD_VS_RMB

elif unit == 'USD': #如果单位是美元，那么：汇率=人民币对美元汇率
    exchange_rate = USD_VS_RMB

in_money = currency_str_value[:-3]#提取字符串‘不带单位的金额’
#把可能发生错误的语句放在try模块里，用except来处理异常。
try:
    in_money = float(in_money)
except ValueError:
    print('请输入正确的带单位的货币金额！')
    in_money = 0

# 调用函数
out_money = convert_currency(in_money, exchange_rate)
print('转换后的金额：', out_money)